import Vue from 'vue'
import App from './App.vue'
// 引入vue-router实例
import router from './router';
// 添加全局指令
import './directives'
import './components'
// 引入vuex.Store实例
import store from './store';
// 引入自定义插件
import VueSweetalert2 from './plugins/vue-sweetalert2';
import Message from './plugins/message'
import './filters'
import {
  mockArticles
} from './mock/data';
import ls from './utils/localStorage'

import './mock';
import axios from 'axios'

// 将 axios 添加到 Vue.prototype 上，使其在实例内部的所有组件中可用
Vue.prototype.$axios = axios

// 使用插件
Vue.use(VueSweetalert2)
Vue.use(Message)

Vue.config.productionTip = false


// 注入mock数据
const AddMockData = (() => {
  const isAddMockData = true

  // 用户数据
  let userArticles = ls.getItem('articles')

  if (Array.isArray(userArticles)) {
    userArticles = userArticles.filter(article => parseInt(article.uid) === 1)
  } else {
    userArticles = []
  }

  if (isAddMockData) {
    // 合并用户数据和测试数据，使用合并值作为所有文章
    store.commit('UPDATE_ARTICLES', [...userArticles, ...mockArticles(60)])
  } else {
    // 使用用户数据作为所有文章
    store.commit('UPDATE_ARTICLES', userArticles)
  }

})()



// 运行时构建只支持render选项
// new Vue({
//   render: h => h(App)
// }).$mount('#app')


/* eslint-disable no-new */

// 编译器模式构建
new Vue({
  el: '#app',
  router,
  store,
  components: {
    App
  },
  template: '<App/>'
})